﻿using System;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;

namespace Acme.BookStore2
{
    /// <summary>
    /// 工作排程明细
    /// </summary>
    public class WorkScheduleItem : FullAuditedEntity<Guid>, IMultiTenant
    {
        /// <summary>
        /// STG
        /// </summary>
        public virtual string Stage { get; set; }
        /// <summary>
        /// 车辆路线
        /// </summary>
        public virtual string Route { get; set; }
        /// <summary>
        /// 车辆通道
        /// </summary>
        public virtual int Lane { get; set; }
        /// <summary>
        /// 车辆位置
        /// </summary>
        public virtual int Spot { get; set; }
        /// <summary>
        /// 排序
        /// </summary>
        public virtual int Sort { get; set; }
        /// <summary>
        /// 司机
        /// </summary>
        public virtual Guid? Driver { get; set; }
        /// <summary>
        /// 登记车辆
        /// </summary>
        public virtual Guid? RegisterVehicleId { get; set; }
        /// <summary>
        /// 登记时间
        /// </summary>
        public virtual DateTime? RegisterTime { get; set; }
        /// <summary>
        /// 登记状态
        /// </summary>
        public virtual VehicleRegisterStatus RegisterStatus { get; private set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
        /// <summary>
        /// 工作排程Id
        /// </summary>
        public Guid WorkScheduleId { get; set; }
        public Guid? TenantId { get; }
        
        protected WorkScheduleItem()
        {
            
        }

        public WorkScheduleItem(Guid workScheduleId, Guid id, Guid? tenantId = null) : base(id)
        {
            RegisterStatus = VehicleRegisterStatus.Unregistered;
            WorkScheduleId = workScheduleId;
            TenantId = tenantId;
        }
    }
}